package com.guanyua.eims;

import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

public class ProductCodeGenerator {

	 public static void main(String[] args) {
         // 数据源配置
         DataSourceConfig dsc = new DataSourceConfig();
         dsc.setUrl("jdbc:mysql://47.93.0.165:3306/eims?useUnicode=true&useSSL=false&characterEncoding=utf8");
         dsc.setDriverName("com.mysql.cj.jdbc.Driver");
         dsc.setUsername("root");
         dsc.setPassword("2949501wbp");

         // 自定义参数
         String parent = "com.guanyua.eims";
//         String moduleName = "product_spu";
         String table = "product_category";
         String tablePrefix = "";
//         String tablePrefix = "product_";
         String entity = "pojo." + table.split(tablePrefix)[1];

	     // 全局配置
	     GlobalConfig globalConfig = new GlobalConfig();
         globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
         globalConfig.setAuthor("任建波");
         globalConfig.setEnableCache(false);// XML 二级缓存
         globalConfig.setOpen(false);   // 是否打开输出目录 默认true
         globalConfig.setFileOverride(false); // 指定文件覆盖
         globalConfig.setBaseColumnList(false); // 基本的sql片段
         globalConfig.setBaseResultMap(false); // 基本的字段映射
//         globalConfig.setEntityName("%sEntity");			//实体命名方式  默认值：null 例如：%sEntity 生成 UserEntity
//         globalConfig.setMapperName("%sDao");
//         globalConfig.setXmlName("%sMapper");				//Mapper xml 命名方式   默认值：null 例如：%sDao 生成 UserDao.xml
         globalConfig.setServiceName("%sService");			//service 命名方式   默认值：null 例如：%sBusiness 生成 UserBusiness
//         globalConfig.setServiceImplName("%sServiceImpl");	//service impl 命名方式  默认值：null 例如：%sBusinessImpl 生成 UserBusinessImpl
//         globalConfig.setControllerName("%sController");	//controller 命名方式    默认值：null 例如：%sAction 生成 UserAction
         globalConfig.setDateType(DateType.ONLY_DATE);  //定义实体类中日期类型
         globalConfig.setSwagger2(true);    //开启swagger2模式

	     // 包配置
	     PackageConfig packageConfig = new PackageConfig();
//         packageConfig.setModuleName(scanner("模块名"));
//         packageConfig.setModuleName(moduleName);
         packageConfig.setParent(parent);
         packageConfig.setEntity(entity);
         packageConfig.setMapper("dao");

	     // 策略配置
	     StrategyConfig strategy = new StrategyConfig();
	     strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
	     strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略, 未指定按照 naming 执行
         strategy.setEntityLombokModel(true);//【实体】是否为lombok模型（默认 false）
         strategy.setRestControllerStyle(true);//生成 @RestController 控制器
//	     strategy.setInclude(scanner("user,payorder").split(","));
//	     strategy.setInclude(scanner("sys_handcard"));
	     strategy.setInclude(table);    // 表
	     strategy.setControllerMappingHyphenStyle(true);//驼峰转连字符
//	     strategy.setTablePrefix(packageConfig.getModuleName() + "_");//表前缀
	     strategy.setTablePrefix(tablePrefix);//表前缀
//         strategy.setLogicDeleteFieldName("is_delete");   //      逻辑删除字段名
//         strategy.setEntityBooleanColumnRemoveIsPrefix(false);    //  去掉布尔值is_前缀
         strategy.setControllerMappingHyphenStyle(true);    //url中驼峰转连字符

         // 代码生成器
         AutoGenerator autoGenerator = new AutoGenerator();
         autoGenerator.setGlobalConfig(globalConfig);
         autoGenerator.setDataSource(dsc);
         autoGenerator.setPackageInfo(packageConfig);
         autoGenerator.setStrategy(strategy);
         autoGenerator.execute();
	 }

}